package com.xuetang.mapper;

import com.xuetang.entity.DietRecordDetail;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 饮食记录明细Mapper接口
 */
public interface DietRecordDetailMapper {

    /**
     * 根据记录ID获取饮食记录明细列表
     * 
     * @param recordId 记录ID
     * @return 饮食记录明细列表
     */
    List<DietRecordDetail> listByRecordId(@Param("recordId") Integer recordId);

    /**
     * 根据记录ID和餐类型获取饮食记录明细列表
     * 
     * @param recordId 记录ID
     * @param mealType 餐类型
     * @return 饮食记录明细列表
     */
    List<DietRecordDetail> listByRecordIdAndMealType(@Param("recordId") Integer recordId,
            @Param("mealType") String mealType);

    /**
     * 根据ID获取饮食记录明细
     * 
     * @param id 明细ID
     * @return 饮食记录明细
     */
    DietRecordDetail getById(@Param("id") Integer id);

    /**
     * 新增饮食记录明细
     * 
     * @param detail 饮食记录明细
     * @return 影响行数
     */
    int insert(DietRecordDetail detail);

    /**
     * 批量新增饮食记录明细
     * 
     * @param details 饮食记录明细列表
     * @return 影响行数
     */
    int batchInsert(@Param("details") List<DietRecordDetail> details);

    /**
     * 更新饮食记录明细
     * 
     * @param detail 饮食记录明细
     * @return 影响行数
     */
    int update(DietRecordDetail detail);

    /**
     * 删除饮食记录明细
     * 
     * @param id 明细ID
     * @return 影响行数
     */
    int delete(@Param("id") Integer id);

    /**
     * 根据记录ID删除所有明细
     * 
     * @param recordId 记录ID
     * @return 影响行数
     */
    int deleteByRecordId(@Param("recordId") Integer recordId);
}